const express = require('express');
const { User } = require ('../utils/db')
//消息处理
const { success, error} = require('../utils/response')
const router = express.Router(); //服务器端的路由，根据前端的不同请求，调用不同的路由

/* GET users listing. */
//查询人员信息
router.get('/:_id?', function(req, res, next) {
  //next用于连接中间件
  const { _id } = req.params
  if(_id){
    User.findById(_id)
    .then(data => {
      res.json(success(data._doc))
    })
    .catch(err => {
      res.json(error(5, err.message))
    })
  }else{
    //从get请求的查询字符串参数中获取数据
    const { page = 1, pageSize = 5} = req.query
    //查询
    User.find()
    .limit(+pageSize)
    .skip((page - 1) * pageSize)
    .then(data =>{
      res.json(success({
        list: data
      }))
    })
    .catch(err =>{
      res.json(error(4, err.message))
    })
  }
});
//创建人员信息
router.post('/', function(req, res, next) {
  // res.send('创建人员信息')
  //创建User（人员）的Model对象实例
  const { name, birthday, sex, cid, phone } = req.body
  const user = new User({
    name,
    birthday,
    sex,
    phone,
    cid
  })
  //保存到数据库中
  user.save()
  .then(data => { //从数据库返回的数据
    res.json(success(data._doc))
  })
  .catch(err => {
    //保存失败。错误码为1
    res.json(error(1, err.message)) //涉及错误编号，需要前后端约定
  })
})
//修改人员信息
router.put('/', function(req, res, next) {
  //从请求主体中获取请求参数,必须带有_id主键
  const { _id, name, birthday, sex, cid, phone } = req.body
  User.update(
    {_id},{
    name,
    birthday,
    sex,
    phone,
    cid
  })
  .then(data => res.json(success(data)))
  .catch(err => res.json(error(2, err.message)))
})

//删除人员xinxi
router.delete('/:_id', function(req, res, next) {
  //获取删除人员的id
  const { _id } = req.params
  //实现删除
  User.remove({ _id })
  .then(data => {
    res.json(success({
      success: true,
      data
    }))
  })
  .catch(err => {
    res.json(error(3,err.message))
  })
})

module.exports = router;
